package com.usian.model.base;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.usian.model.common.dtos.PageRequestDto;
import com.usian.model.common.dtos.PageResponseResult;
import com.usian.model.common.dtos.ResponseResult;
import com.usian.model.common.enums.AppHttpCodeEnum;


public class BaseServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M,T> {
    protected ResponseResult errorParam = ResponseResult.errorResult(AppHttpCodeEnum.PARAM_INVALID);
    protected ResponseResult notExit = ResponseResult.errorResult(AppHttpCodeEnum.DATA_NOT_EXIST);
    protected ResponseResult notLogin = ResponseResult.errorResult(AppHttpCodeEnum.NEED_LOGIN);
    protected ResponseResult successParam = ResponseResult.okResult(AppHttpCodeEnum.SUCCESS);
    protected ResponseResult imgNotExit = ResponseResult.errorResult(AppHttpCodeEnum.DATA_NOT_EXIST,"图片不存在");
    protected ResponseResult getPage(PageRequestDto dto, Wrapper wrapper){
        dto.checkParam();
        Page page = new Page(dto.getPage(),dto.getSize());
        IPage result = page(page,wrapper);
        //3.结果封装
        ResponseResult responseResult = new PageResponseResult(dto.getPage(),dto.getSize(),(int)result.getTotal());
        responseResult.setData(result.getRecords());
        return responseResult;
    }

}
